Leadtools.Jpeg2000 Requires Document/Medical product license | Send comments on this topic. | Back to Introduction - All Topics | Help Version 16.5.9.25
ExtractFramesMemory(Stream,Generic List) Method
See Also  Example
Leadtools.Jpeg2000 Namespace > Jpeg2000Engine Class > ExtractFramesMemory Method : ExtractFramesMemory(Stream,Generic List) Method



stream
A Stream containing the JPEG 2000 file data from which the frames are being extracted.
frames
Frame indices. A list of integers specifying the indices of the frames to be extracted from the input file. All indices should be 0-based.
Extracts specific frames from the input stream, and saves them to a new JPEG 2000 file in a byte array. This file contains only the extracted frame headers/codestreams (not any obtained through the decompressing/recompressing process) so it saves processor time and memory. This method is available in the Document/Medical Toolkits.

Syntax

Visual Basic (Declaration) 
Public Overloads Function ExtractFramesMemory( _
   ByVal stream As Stream, _
   ByVal frames As List(Of Integer) _
) As Byte()
Visual Basic (Usage)Copy Code
Dim instance As Jpeg2000Engine
Dim stream As Stream
Dim frames As List(Of Integer)
Dim value() As Byte
 
value = instance.ExtractFramesMemory(stream, frames)
C# 
public byte[] ExtractFramesMemory( 
   Stream stream,
   List<int> frames
)
C++/CLI 
public:
array<byte>^ ExtractFramesMemory( 
   Stream^ stream,
   List<int>^ frames
) 

Parameters

stream
A Stream containing the JPEG 2000 file data from which the frames are being extracted.
frames
Frame indices. A list of integers specifying the indices of the frames to be extracted from the input file. All indices should be 0-based.

Return Value

A byte array that contains a JPEG 2000 file with extracted frames only.

Example

Visual BasicCopy Code
Private Function ExtractFramesMemoryStreamExample(ByVal frames As List(Of Integer)) As Byte()
   Dim fs As FileStream = File.OpenRead(LeadtoolsExamples.Common.ImagesPath.Path + "image1.jpx")

   Dim engine As New Jpeg2000Engine()
   Dim fileInfo As Jpeg2000FileInformation = engine.GetFileInformation(fs)

   For i As Integer = 0 To frames.Count - 1
      If (frames(i) >= fileInfo.Frame.GetLength(0)) Then
         Return Nothing
      End If
   Next i

   Dim buffer() As Byte = engine.ExtractFramesMemory(fs, frames)

   ' Clean up
   fs.Close()
   Return buffer
End Function
C#Copy Code
private byte[] ExtractFramesMemoryStreamExample(List<int> frames) 

   FileStream fs = File.OpenRead(LeadtoolsExamples.Common.ImagesPath.Path + "image1.jpx"); 
 
   Jpeg2000Engine engine = new Jpeg2000Engine(); 
   Jpeg2000FileInformation fileInfo = engine.GetFileInformation(fs); 
 
   for (int i = 0; i < frames.Count; i++) 
      if (frames[i] >= fileInfo.Frame.GetLength(0)) 
         return null; 
   byte [] buffer = engine.ExtractFramesMemory(fs, frames); 
   // Clean up 
   fs.Close(); 
   return buffer; 
}

Remarks

. This method is very suitable for server applications where multiple clients request specific frames of a JPEG 2000 file. Instead of decompressing and then recompressing the frames this method copies only the needed frame data, saving the data to a new JPEG 2000 file.

Requirements

Target Platforms: Microsoft .NET Framework 2.0, Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 family

See Also

Leadtools.Jpeg2000 requires a Document or Medical toolkit license and unlock key. For more information, refer to: Imaging Pro/Document/Medical Features